package com.xoa.service.diary;

import java.util.Map;
import java.util.zip.DataFormatException;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.xoa.model.diary.DiaryCommentModel;
import com.xoa.model.diary.DiaryCommentReplyModel;
import org.springframework.stereotype.Service;

import com.xoa.model.diary.DiaryModel;
import com.xoa.model.enclosure.Attachment;
import com.xoa.util.ToJson;
import com.xoa.util.page.PageParams;
/**
 * 创建作者:   杨 胜
 * 创建日期:   2017-4-19 上午9:21:03
 * 类介绍  :   日志操作接口
 * 构造参数:  默认
 */
@Service
public interface DiaryService {
    /**
     * 
     * 创建作者:   杨 胜
     * 创建日期:   2017-4-19 下午3:10:17
     * 方法介绍:   工作日志添加操作
     * 参数说明:   @param diaryModel
     * 参数说明:   @return
     * @return     int
     */
	int saveDiary(DiaryModel diaryModel,HttpServletRequest request);
   /**
    * 
    * 创建作者:   杨 胜
    * 创建日期:   2017-4-19 下午3:39:29
    * 方法介绍:   工作日志编辑操作
    * 参数说明:   @param diaryModel
    * 参数说明:   @return
    * @return   int
    */
	int updateDiary(DiaryModel diaryModel,HttpServletRequest request);
	/**
	 * 
	 * 创建作者:   杨 胜
	 * 创建日期:   2017-4-19 下午4:41:51
	 * 方法介绍:   工作日志首页接口
	 * 参数说明:   @param diaryModel
	 * 参数说明:   @return
	 * @return     List<DiaryModel>
	 */
	ToJson<DiaryModel> getDiaryIndex(DiaryModel diaryModel,PageParams pageParams,HttpServletRequest request );


	/**
	 *
	 * 创建作者:   高亚峰
	 * 创建日期:   2017-4-19 下午4:41:51
	 * 方法介绍:   工作日志首页接口
	 * 参数说明:   @param diaryModel
	 * 参数说明:   @return
	 * @return     List<DiaryModel>
	 */
	ToJson<DiaryModel> PregetIndex(DiaryModel diaryModel,PageParams pageParams,HttpServletRequest request );
	/**
	 * 
	 * 创建作者:   杨 胜
	 * 创建日期:   2017-4-19 下午6:58:23
	 * 方法介绍:   取得全部共享日志
	 * 参数说明:   @param diaryModel
	 * 参数说明:   @return
	 * @return   ToJson<DiaryModel>
	 */
	ToJson<DiaryModel> getDiaryAll(DiaryModel diaryModel,PageParams pageParams,HttpServletRequest request );
	/**
	 * 
	 * 创建作者:   杨 胜
	 * 创建日期:   2017-4-19 下午7:36:19
	 * 方法介绍:   取得他人共享日志
	 * 参数说明:   @param diaryModel
	 * 参数说明:   @return
	 * @return     ToJson<DiaryModel>
	 */
	ToJson<DiaryModel> getDiaryOther(DiaryModel diaryModel,PageParams pageParams,HttpServletRequest request);
	/**
	 * 
	 * 创建作者:   杨 胜
	 * 创建日期:   2017-5-3 下午2:13:55
	 * 方法介绍:    通过id获取详情
	 * 参数说明:   @param diaryModel
	 * 参数说明:   @return
	 * @return     ToJson<DiaryModel>
	 */
	ToJson<Attachment> getDiaryByDiaId(DiaryModel diaryModel,String sqlType);
	/**
	 * 
	 * 创建作者:   杨 胜
	 * 创建日期:   2017-5-5 上午10:34:24
	 * 方法介绍:   通过DiaId删除一条日志
	 * 参数说明:   @param diaryModel
	 * 参数说明:   @return
	 * @return     int
	 */
	int deletDiaById(DiaryModel diaryModel);
	/**
	 * 
	 * 创建作者:   杨 胜
	 * 创建日期:   2017-6-12 上午11:16:00
	 * 方法介绍:   工作日志模块高级查询请求调用
	 * 参数说明:   @param mapSelectParameter
	 * 参数说明:   @return
	 * @return     ToJson<DiaryModel>
	 */
	ToJson<DiaryModel> diarySelect(Map<String, String> mapSelectParameter,HttpServletRequest request);





	void exportSelect(Map<String, String> mapSelectParameter, HttpServletRequest request, HttpServletResponse response);
	/**
	 * 创建作者:   牛江丽
	 * 创建日期:   2017年7月5日 下午15:10:05
	 * 方法介绍:   添加工作日志评论
	 * @return ToJson
	 */
	public ToJson<DiaryCommentModel> insertDiaryComment(DiaryCommentModel diaryCommentModel,HttpServletRequest request);

	/**
	 * 创建作者:   牛江丽
	 * 创建日期:   2017年7月5日 下午16:01:05
	 * 方法介绍:   获取所有工作日志评论
	 * @return ToJson
	 */
	public  ToJson<DiaryCommentModel> getDiaryCommentByDiaId(String diaId);

	/**
	 * 创建作者:   牛江丽
	 * 创建日期:   2017年7月5日 下午16:53:05
	 * 方法介绍:   添加工作日志评论回复
	 * @return ToJson
	 */
	public ToJson<DiaryCommentReplyModel> insertCommentReply(DiaryCommentReplyModel diaryCommentReplyModel,HttpServletRequest request);

	/**
	 * 创建作者:   牛江丽
	 * 创建日期:   2017年7月5日 下午19:21:00
	 * 方法介绍:   根据评论id删除评论
	 * @return ToJson
	 */
	public ToJson<DiaryCommentModel> delDiaryCommentByCommentId(String commentId);

	/**
	 * 创建作者:   牛江丽
	 * 创建日期:   2017年7月5日 下午19:21:00
	 * 方法介绍:   根据评论id删除评论回复
	 * @return ToJson
	 */
	public ToJson<DiaryCommentReplyModel> delCommentReplyByReplyId(String replyId);

	/**
	 * 创建作者:   牛江丽
	 * 创建日期:   2017年7月6日 上午10:03:20
	 * 方法介绍:   根据日志id查询 评论的数量
	 * @return ToJson
	 */
	public ToJson<DiaryCommentModel> getDiaryCommentCount(Integer diaId);

	/**
	 * 创建作者:   牛江丽
	 * 创建日期:   2017年7月6日 下午13:39:20
	 * 方法介绍:   工作日志置顶
	 * @return ToJson
	 */
	public ToJson<DiaryModel> insertDiaryTop(String diaId,HttpServletRequest request);

	/**
	 * 创建作者:   牛江丽
	 * 创建日期:   2017年7月6日 下午16:10:10
	 * 方法介绍:   取消工作日志置顶
	 * @return ToJson
	 */
	public ToJson<DiaryModel> deleteDiaryTop(String diaId,HttpServletRequest request);
	
	/**
	 * @作者：张航宁
	 * @时间：2017/7/20
	 * @介绍：查询阅读人数信息
	 * @参数：
	 */
	public ToJson<DiaryModel> getReadUsers(Integer diaId);


	ToJson<DiaryModel> selectShareName(HttpServletRequest request);

	/**
	 * @Author 廉立深
	 * @Description 优化工作日志
	 * @Date 11:03 2020/5/20
	 * @Param [request, diaryModel]
	 * @return com.xoa.util.ToJson<com.xoa.model.diary.DiaryModel>
	 **/
	ToJson<DiaryModel> findDiaryGet(HttpServletRequest request, DiaryModel diaryModel,String type,Integer page,Integer limit);
}
